In the operating environment of a typical 10 computer system, such as the IBM System/370, data contained in the system memory can be addressed either directly or indirectly by the computer system. Direct addressing is used by the host for program read operations. Indirect addressing is used by application and utility programs for their data read/write operations. Channel indirect data addressing permits a single channel command word (CCW) to control the transmission of data that spans noncontiguous pages in absolute system memory. Channel indirect data addressing is specified by a flag bit in the CCW which, when one, indicates that the data-address field is not used to directly address data. Instead, the contents of the data-address field specify the location of an indirect data address word (IDAW) which contains an absolute address designating a data area within system memory. IDAWs can be used for contiguous as well as noncontiguous operations, thereby having the capability to address any portion of system memory. IDAWs in the System/370 environment are described in more detail in "IBM System/370 Principles of Operation", GA22-7000-9, on pages 12-45 through 12- 46, herein incorporated by reference.
In a System/370 or similar environment, the system uses IDAWs to transfer data up to a maximum transfer length. A traditional System/370 input/output controller processes these IDAWs one at a time. For each IDAW processed, a Direct Memory Access (DMA) operation must be performed. A DMA operation allows for the transfer of data between system memory and the input/output controller without processor intervention. The fact that a DMA operation must be performed each time an IDAW is processed implies that the DMA transfer length is limited by the IDAW transfer length. This can be a wasteful limitation, as performance can be improved if the number of DMA operations can be minimized.